﻿namespace WMS6.Web.BaseInfoServiceRef
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Runtime.CompilerServices;
    using System.Runtime.Serialization;

    [Serializable, DataContract(Name="CycleCountRuleInfo", Namespace="http://schemas.datacontract.org/2004/07/WMS6.DataEntity"), GeneratedCode("System.Runtime.Serialization", "3.0.0.0"), DebuggerStepThrough]
    public class CycleCountRuleInfo : IExtensibleDataObject, INotifyPropertyChanged
    {
        [OptionalField]
        private string CcAdjRuleIDField;
        [OptionalField]
        private string CreatedByField;
        [OptionalField]
        private DateTime CreatedDateField;
        [OptionalField]
        private string DescrField;
        [NonSerialized]
        private ExtensionDataObject extensionDataField;
        [OptionalField]
        private string IsActiveField;
        [OptionalField]
        private string NegAdjExpiryDateField;
        [OptionalField]
        private string NegAdjLotField;
        [OptionalField]
        private string NegAdjProduceDateField;
        [OptionalField]
        private string NegAdjReceiptDateField;
        [OptionalField]
        private string PosAdjExpiryDateField;
        [OptionalField]
        private string PosAdjLotField;
        [OptionalField]
        private string PosAdjProduceDateField;
        [OptionalField]
        private string PosAdjReceiptDateField;
        [OptionalField]
        private string QtyGtrZeroField;
        [OptionalField]
        private int RowIDField;
        [OptionalField]
        private string SystemCreatedField;
        [OptionalField]
        private byte[] TsField;
        [OptionalField]
        private string UpdatedByField;
        [OptionalField]
        private DateTime UpdatedDateField;
        [OptionalField]
        private string WhIDField;

        public event PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if (propertyChanged != null)
            {
                propertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        [DataMember]
        public string CcAdjRuleID
        {
            get
            {
                return this.CcAdjRuleIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.CcAdjRuleIDField, value))
                {
                    this.CcAdjRuleIDField = value;
                    this.RaisePropertyChanged("CcAdjRuleID");
                }
            }
        }

        [DataMember]
        public string CreatedBy
        {
            get
            {
                return this.CreatedByField;
            }
            set
            {
                if (!object.ReferenceEquals(this.CreatedByField, value))
                {
                    this.CreatedByField = value;
                    this.RaisePropertyChanged("CreatedBy");
                }
            }
        }

        [DataMember]
        public DateTime CreatedDate
        {
            get
            {
                return this.CreatedDateField;
            }
            set
            {
                if (!this.CreatedDateField.Equals(value))
                {
                    this.CreatedDateField = value;
                    this.RaisePropertyChanged("CreatedDate");
                }
            }
        }

        [DataMember]
        public string Descr
        {
            get
            {
                return this.DescrField;
            }
            set
            {
                if (!object.ReferenceEquals(this.DescrField, value))
                {
                    this.DescrField = value;
                    this.RaisePropertyChanged("Descr");
                }
            }
        }

        [Browsable(false)]
        public ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }

        [DataMember]
        public string IsActive
        {
            get
            {
                return this.IsActiveField;
            }
            set
            {
                if (!object.ReferenceEquals(this.IsActiveField, value))
                {
                    this.IsActiveField = value;
                    this.RaisePropertyChanged("IsActive");
                }
            }
        }

        [DataMember]
        public string NegAdjExpiryDate
        {
            get
            {
                return this.NegAdjExpiryDateField;
            }
            set
            {
                if (!object.ReferenceEquals(this.NegAdjExpiryDateField, value))
                {
                    this.NegAdjExpiryDateField = value;
                    this.RaisePropertyChanged("NegAdjExpiryDate");
                }
            }
        }

        [DataMember]
        public string NegAdjLot
        {
            get
            {
                return this.NegAdjLotField;
            }
            set
            {
                if (!object.ReferenceEquals(this.NegAdjLotField, value))
                {
                    this.NegAdjLotField = value;
                    this.RaisePropertyChanged("NegAdjLot");
                }
            }
        }

        [DataMember]
        public string NegAdjProduceDate
        {
            get
            {
                return this.NegAdjProduceDateField;
            }
            set
            {
                if (!object.ReferenceEquals(this.NegAdjProduceDateField, value))
                {
                    this.NegAdjProduceDateField = value;
                    this.RaisePropertyChanged("NegAdjProduceDate");
                }
            }
        }

        [DataMember]
        public string NegAdjReceiptDate
        {
            get
            {
                return this.NegAdjReceiptDateField;
            }
            set
            {
                if (!object.ReferenceEquals(this.NegAdjReceiptDateField, value))
                {
                    this.NegAdjReceiptDateField = value;
                    this.RaisePropertyChanged("NegAdjReceiptDate");
                }
            }
        }

        [DataMember]
        public string PosAdjExpiryDate
        {
            get
            {
                return this.PosAdjExpiryDateField;
            }
            set
            {
                if (!object.ReferenceEquals(this.PosAdjExpiryDateField, value))
                {
                    this.PosAdjExpiryDateField = value;
                    this.RaisePropertyChanged("PosAdjExpiryDate");
                }
            }
        }

        [DataMember]
        public string PosAdjLot
        {
            get
            {
                return this.PosAdjLotField;
            }
            set
            {
                if (!object.ReferenceEquals(this.PosAdjLotField, value))
                {
                    this.PosAdjLotField = value;
                    this.RaisePropertyChanged("PosAdjLot");
                }
            }
        }

        [DataMember]
        public string PosAdjProduceDate
        {
            get
            {
                return this.PosAdjProduceDateField;
            }
            set
            {
                if (!object.ReferenceEquals(this.PosAdjProduceDateField, value))
                {
                    this.PosAdjProduceDateField = value;
                    this.RaisePropertyChanged("PosAdjProduceDate");
                }
            }
        }

        [DataMember]
        public string PosAdjReceiptDate
        {
            get
            {
                return this.PosAdjReceiptDateField;
            }
            set
            {
                if (!object.ReferenceEquals(this.PosAdjReceiptDateField, value))
                {
                    this.PosAdjReceiptDateField = value;
                    this.RaisePropertyChanged("PosAdjReceiptDate");
                }
            }
        }

        [DataMember]
        public string QtyGtrZero
        {
            get
            {
                return this.QtyGtrZeroField;
            }
            set
            {
                if (!object.ReferenceEquals(this.QtyGtrZeroField, value))
                {
                    this.QtyGtrZeroField = value;
                    this.RaisePropertyChanged("QtyGtrZero");
                }
            }
        }

        [DataMember]
        public int RowID
        {
            get
            {
                return this.RowIDField;
            }
            set
            {
                if (!this.RowIDField.Equals(value))
                {
                    this.RowIDField = value;
                    this.RaisePropertyChanged("RowID");
                }
            }
        }

        [DataMember]
        public string SystemCreated
        {
            get
            {
                return this.SystemCreatedField;
            }
            set
            {
                if (!object.ReferenceEquals(this.SystemCreatedField, value))
                {
                    this.SystemCreatedField = value;
                    this.RaisePropertyChanged("SystemCreated");
                }
            }
        }

        [DataMember]
        public byte[] Ts
        {
            get
            {
                return this.TsField;
            }
            set
            {
                if (!object.ReferenceEquals(this.TsField, value))
                {
                    this.TsField = value;
                    this.RaisePropertyChanged("Ts");
                }
            }
        }

        [DataMember]
        public string UpdatedBy
        {
            get
            {
                return this.UpdatedByField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UpdatedByField, value))
                {
                    this.UpdatedByField = value;
                    this.RaisePropertyChanged("UpdatedBy");
                }
            }
        }

        [DataMember]
        public DateTime UpdatedDate
        {
            get
            {
                return this.UpdatedDateField;
            }
            set
            {
                if (!this.UpdatedDateField.Equals(value))
                {
                    this.UpdatedDateField = value;
                    this.RaisePropertyChanged("UpdatedDate");
                }
            }
        }

        [DataMember]
        public string WhID
        {
            get
            {
                return this.WhIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.WhIDField, value))
                {
                    this.WhIDField = value;
                    this.RaisePropertyChanged("WhID");
                }
            }
        }
    }
}

